package com.etc.dao;

import com.etc.entity.Orders;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
public interface OrdersDao {
    /**
     * 用户页面全部订单查询
     *
     * @param user_no 用户编号
     * @return List<Orders>订单列表
     */
    List<Orders> queryAllByUser(@Param("user_no") Integer user_no);

    /**
     * 管理界面全部订单查询
     *
     * @param showing_no 场次编号
     * @return List<Orders>订单列表
     */
    List<Orders> queryAllByShowing(@Param("showing_no") Integer showing_no);

    /**
     * 用户界面详细订单查询
     *
     * @param user_no    用户编号
     * @param showing_no 场次编号
     * @return Orders订单
     */
    Orders queryDetail(@Param("user_no") Integer user_no, @Param("showing_no") Integer showing_no);

    /**
     * 用户界面详细订单查询
     *
     * @param order_no 订单编号
     * @return Orders订单
     */
    Orders queryDetil(@Param("order_no") Integer order_no);

    /**
     * 添加订单
     *
     * @param orders 订单
     * @return int
     */
    int addOrder(Orders orders);

    /**
     * 删除订单
     *
     * @param order_no 订单编号
     * @return int
     */
    int delOrder(@Param("order_no") Integer order_no);

    /**
     * 用户页面全部订单查询
     *
     * @param user_no 用户编号
     * @return List<Orders>订单列表
     */
    List<Orders> queryByUser(@Param("user_no") Integer user_no);

    /**
     * 管理页面全部订单查询
     *
     * @param movie_no 电影编号
     * @return List<Orders>订单列表
     */
    List<Orders> queryByMovie(@Param("movie_no") Integer movie_no);

    /**
     * 订单详情
     *
     * @param order_no 订单编号
     * @return Orders订单
     */
    Orders queryByOrder(@Param("order_no") String order_no);

    /**
     * 修改订单状态
     *
     * @return
     */
    int updateOrderStatus(Orders orders);

    /**
     * 求和
     * @param movie_no 电影编号
     * @return Integer
     */
    Integer queryCount(@Param("movie_no")Integer movie_no);
}